Translate ট্যাগ ব্যবহার

Internationalization (i18n) এবং Localization (l10n) - ওয়েব২পাই (Web2Py) - Web Development

230

Web2Py তে T() ফাংশন ব্যবহার করে আপনি translation (অনুবাদ) করতে পারেন, যা Internationalization (i18n) এর অংশ। Web2Py এর মধ্যে অনুবাদ ব্যবস্থাটি খুবই সহজ এবং শক্তিশালী, যার মাধ্যমে আপনি একটি অ্যাপ্লিকেশনকে একাধিক ভাষায় রূপান্তরিত করতে পারেন। Web2Py তে T() ফাংশন ব্যবহার করে আপনি স্ট্যাটিক টেক্সট বা ডাইনামিক কন্টেন্ট অনুবাদ করতে পারেন।

এখানে Web2Py তে T() ফাংশন ব্যবহার করার পদ্ধতি এবং এর বিভিন্ন ফিচার আলোচনা করা হলো।


1. Web2Py তে T() ফাংশন ব্যবহার

Web2Py তে T() ফাংশন ব্যবহার করে আপনি অ্যাপ্লিকেশনের স্ট্যাটিক টেক্সটকে অনুবাদ করতে পারেন। এটি ব্যবহার করা খুবই সহজ এবং একাধিক ভাষায় সমর্থনযোগ্য।

উদাহরণ:

# controllers/default.py
def index():
    return dict(message=T('Welcome to Web2Py!'))

এখানে, T('Welcome to Web2Py!') পাঠ্যটি অনুবাদযোগ্য টেক্সট হিসেবে চিহ্নিত হবে। এই টেক্সটটির অনুবাদ করা যেতে পারে নির্দিষ্ট ভাষায়।


2. অনুবাদের জন্য T() ফাংশন ব্যবহার

Web2Py তে T() ফাংশন ডিফল্ট ভাষা (যেমন ইংরেজি) থেকে নির্দিষ্ট ভাষায় অনুবাদ করতে সহায়তা করে। অনুবাদগুলি সাধারণত /languages ফোল্ডারে টেক্সট ফাইল হিসেবে সংরক্ষিত থাকে।

উদাহরণ:

# controllers/default.py
def index():
    return dict(message=T('Hello World'))

এখানে, T('Hello World') অনুবাদযোগ্য টেক্সট। যদি আপনার languages ফোল্ডারে ইংরেজি (default) এবং অন্য ভাষার (যেমন স্প্যানিশ) ফাইল থাকে, তবে এই টেক্সটটি ইউজারের ভাষার ভিত্তিতে অনুবাদ হবে।


3. অনুবাদ ফাইল তৈরি করা

Web2Py তে আপনার অ্যাপ্লিকেশনটির জন্য একাধিক ভাষায় অনুবাদ ফাইল তৈরি করা সহজ। এই ফাইলগুলি সাধারণত /languages ফোল্ডারে রাখা হয়।

৩.১. Translation File Structure

  1. languages ফোল্ডারে একটি .py ফাইল তৈরি করতে হবে, যেমন:
    • en.py — ইংরেজি ভাষার জন্য
    • es.py — স্প্যানিশ ভাষার জন্য
  2. প্রতিটি ফাইলে ভাষার অনুবাদ সংরক্ষিত থাকবে:

en.py (ইংরেজি):

T = {
    'Welcome to Web2Py!': 'Welcome to Web2Py!',
    'Hello World': 'Hello World',
}

es.py (স্প্যানিশ):

T = {
    'Welcome to Web2Py!': '¡Bienvenido a Web2Py!',
    'Hello World': 'Hola Mundo',
}

এখানে, T একটি dictionary হিসেবে কাজ করে যা স্ট্যাটিক টেক্সটের অনুবাদ সংরক্ষণ করে। আপনি যেকোনো স্ট্যাটিক টেক্সটের অনুবাদ এখানে সংরক্ষণ করতে পারবেন।

৩.২. অনুবাদ ফাইল তৈরি করা

একটি নতুন ভাষা ফাইল তৈরি করতে, আপনি Web2Py এর pybabel টুল ব্যবহার করতে পারেন।

  1. প্রথমে Web2Py অ্যাপ্লিকেশন ডিরেক্টরির মধ্যে languages ফোল্ডার তৈরি করুন (যদি এটি না থাকে)।
  2. তারপর এই কমান্ডটি চালান (ডিফল্ট ভাষা থেকে অনুবাদ ফাইল তৈরি করার জন্য):
python web2py.py -K your_app_name

এটি languages ফোল্ডারে অনুবাদ ফাইল তৈরি করবে, যা আপনি পরবর্তীতে সম্পাদনা করতে পারবেন।


4. অনুবাদের জন্য ডিফল্ট ভাষা সেট করা

Web2Py তে আপনি অ্যাপ্লিকেশনের ডিফল্ট ভাষা নির্ধারণ করতে পারেন। এই ভাষাটি হবে প্রথম ভাষা, যা যদি অন্য কোনো ভাষার অনুবাদ না থাকে, তবে প্রদর্শিত হবে।

উদাহরণ:

# models/db.py
T.force('en')  # ডিফল্ট ভাষা ইংরেজি

এখানে T.force('en') কোডটি ইংরেজি ভাষাকে ডিফল্ট ভাষা হিসেবে সেট করবে। আপনি যদি অন্য ভাষা ব্যবহার করতে চান, তাহলে এখানে সংশ্লিষ্ট ভাষার কোড যেমন 'es', 'fr' ইত্যাদি ব্যবহার করতে পারেন।


5. T() ফাংশন দিয়ে ডাইনামিক টেক্সট অনুবাদ করা

T() ফাংশন শুধুমাত্র স্ট্যাটিক টেক্সটই নয়, ডাইনামিক কন্টেন্টও অনুবাদ করতে পারে। এর জন্য আপনি T() ফাংশনে একটি ভ্যারিয়েবল পাস করতে পারেন।

উদাহরণ:

# controllers/default.py
def index():
    name = 'John'
    message = T('Hello %(name)s', name=name)  # ডাইনামিক টেক্সট
    return dict(message=message)

এখানে %(name)s একটি প্লেসহোল্ডার, যা ভ্যারিয়েবল name দ্বারা পূর্ণ হবে এবং এর অনুবাদও হবে।


6. T() ফাংশন দিয়ে ফর্ম ভ্যালিডেশন এবং মেসেজ

Web2Py তে T() ফাংশন ফর্ম মেসেজ এবং ভ্যালিডেশন বার্তাও অনুবাদ করতে পারে।

উদাহরণ:

# controllers/default.py
def form():
    form = SQLFORM.factory(
        Field('name', requires=IS_NOT_EMPTY())
    )
    if form.process().accepted:
        response.flash = T('Form submitted successfully!')
    return dict(form=form)

এখানে T('Form submitted successfully!') মেসেজটি অনুবাদযোগ্য হবে।


7. Web2Py তে অনুবাদ কনফিগারেশন

Web2Py তে আপনি T() ফাংশনটির ব্যবহার কনফিগারেশন দ্বারা নিয়ন্ত্রণ করতে পারেন, যেমন আপনি চান কি না ব্যবহারকারী যখন অ্যাপ্লিকেশনটি প্রথমবার চালু করবে তখন ভাষা নির্বাচন করতে পারবে।

ভাষা পরিবর্তন কনফিগারেশন:

# controllers/default.py
def set_language():
    language = request.args(0) or 'en'
    T.force(language)  # নির্দিষ্ট ভাষা সেট করা
    redirect(URL('index'))

এখানে T.force(language) ফাংশনটি নির্দিষ্ট ভাষা সেট করবে।


সারাংশ

Web2Py তে T() ফাংশন ব্যবহার করে আপনি আপনার অ্যাপ্লিকেশনে ভাষাগত সমর্থন যুক্ত করতে পারেন। এটি Internationalization (i18n) এর অংশ এবং সহজেই বিভিন্ন ভাষায় অনুবাদযোগ্য অ্যাপ্লিকেশন তৈরি করতে সহায়তা করে। T() ফাংশনটি স্ট্যাটিক টেক্সট, ডাইনামিক টেক্সট এবং ফর্ম মেসেজের অনুবাদ করতে ব্যবহার করা হয়। languages ফোল্ডারে অনুবাদ ফাইল তৈরি করে এবং T.force() ফাংশন ব্যবহার করে ডিফল্ট ভাষা সেট করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...